FIG. 1 shows a schematic hardware configuration of a conventional server/client system. In this figure, the reference numeral 100 denotes a server, and the reference numeral 200 denotes a client which is a personal computer or equivalent, and both of them are connected with a communication line 300. To the client 200, an I/O device 400 such as a printer, a memory card reader, or a bar-code reader is connected through a connecting line 500.
The server 100 of the conventional server/client system includes a CPU 101, a memory 102, hard disks 103a and 103b, and a line control unit 104. The hard disks in the server are usually duplicated (mirrored) so that in the case of a failure of one of the hard disks, the other one may take its place.
The client 200 includes a CPU 201, a memory 202, a hard disk 203, a line control unit 204, and an I/O port 205. In the hard disk 203, software 206, including various kinds of applications and device drivers, and an operating system (OS) for controlling the operation of the client 200, are installed.
The conventional server/client system is so configured, as shown in the figure, that the applications are operated on the client 200. For this reason, due to considerable increase in the size of the operating system and applications, and an increase in the number of device drivers, in recent years, the client is required to have high processing-ability, large hardware resources and large-capacity storage devices.
However, a hard disk often used as a hardware resource increases in cost with increasing in capacity and often breaks down. Thus, an increase in capacity of hardware resources is undesirable from the viewpoints of manufacturing cost as well as operational system cost. For this reason, it is required to reduce the burden on the processor of the client, and to reduce the hardware/software requirements of the client, with effective use of conventional applications and device drivers.
For this purpose, if the applications are operated on the server 100, and the screen and key-input data are transferred between the client 200 and server 100, the burden on the processor of the client 200 may be reduced, and the requirements of the hardware may be reduced accordingly. Since an I/O device is usually connected to the client near the user, a device driver is installed in the client.
If the applications are installed in the server and the device driver is operated on the client as mentioned above, there are the following problems in terms of the control of the I/O device.
(1) As the device driver in the client often depends on the O/S having a large code size, the device driver installed in the client increases the burden on the processor of the client, and a storage device for the O/S necessary for operating the device driver is required.
(2) As the interface between the application installed in the server and the device driver installed in the client is different from the one between the application and device driver installed in the client, the device driver must be recreated.
(3) If there are multiple kinds of I/O device, each driver must be recreated for the above reason (2).
(4) The version number of the device driver may be known only at the place where the client is installed.
(5) Diagnosis of the I/O device for the client may be performed only at the place where the client is installed.
(6) The device driver must be recreated every time the platform of the client is modified.
As mentioned above, if the application is operated on the server, and the device driver is operated on the client, decreasing the hardware/software requirements of the client and effective use of resources such as the conventional applications and device drivers are difficult for the above reasons (1), (2), and (3). In addition, efficient operation of the system is difficult as mentioned in the above (4), (5), and (6).